﻿using Pay.DTO;
using Pay.TO;
using System.Collections.Generic;

namespace Pay.IService {
    public interface IRedRecordService {
        /// <summary>
        /// 生产钻石
        /// </summary>
        /// <param name="id"></param>
        void ProductRed(long id);
        /// <summary>
        /// 接受钻石
        /// </summary>
        /// <param name="id"></param>
        /// <param name="merchantId"></param>
        /// <returns></returns>
        bool ReciveRed(long id, long merchantId);
        /// <summary>
        /// 获取未领取的钻石
        /// </summary>
        /// <param name="id">用户id</param>
        /// <returns></returns>
        List<redrecorddetail_dto> GetRedRecordDetails(long id);
        /// <summary>
        /// 马力 红钻排行
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        List<red_rank_dto> GetRedAndHorsePower();
        /// <summary>
        /// 定时--马力 红钻排行到缓存
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        bool GetRedAndHorsePower2();
        /// <summary>
        /// 获取用户钻石马力排行
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        user_red_dto GetUserRed(long id);
        /// <summary>
        /// 用户马力和红钻记录
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        PagedResult<user_record_dto> GetUserRedRecords(RedQuery query);
        /// <summary>
        /// 用户 马力 红钻 邀请码 数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        red_user_dto GetUser(long id);
        /// <summary>
        /// 获取红钻冻结记录
        /// </summary>
        /// <param name="query"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        PagedResult<app_red_frozen_record_dto> GetRedFrozenRecordPageList(PageQuery query, long userId);
    }
}
